package dao;

import domain.QueryVo;
import domain.User;

import java.util.List;

/**
 * 用户持久层接口
 */
public interface IUserDao {

    /**
     * 查询所有
     * @return
     */
    List<User> findAll();

    /**
     * 保存用户
     * @param user
     */
    void saveUser(User user);

    /**
     * 更新用户
     * @param user
     */
    void updateUser(User user);

    /**
     * 删除用户
     * @param userId
     */
    void deleteUser(Integer userId);

    /**
     * 查询用户
     * @param userId 输入查询用户的ID
     * @return 返回查询对象
     */
    User findById(Integer userId);

    /**
     * 模糊查询用户
     * @param uName 根据用户名模糊查询
     * @return 模糊查询结果集
     */
    List<User> findByName(String uName);

    /**
     * 查询用户总数
     * @return
     */
    int findTotal();

    /**
     * 根据queryVo中的条件查询用户
     * @param vo
     * @return
     */
    List<User> findUserByVo(QueryVo vo);
}
